函数的声明、定义、调用

函数的定义

定义部分包括:

  • 函数头

    • 返回值类型
    • 函数名(标识符)
    • 参数列表
  • 函数体

    • 局部变量声明
    • 可执行代码

定义方式

(1)在 C 文件中定义

  • ① 定义在当前 C 文件中:

    • C 文件是编译的最小单位
    • 一般定义在当前 C 文件中,即 main( ) 所在的C文件
    • 不能嵌套函数定义语句,即定义不能放在函数体中
  • ② 定义在其他C文件中:

    • 需要单独包含涉及到的头文件,也就是说即便主函数所在的 C 文件中包含了头文件,在这里仍然是无效的,需要再次加入 #include<XXX.h>
    • C 文件中的函数可以直接调用已经定义的其他函数(不用在此 C 文件中再次定义)

(2)在头文件中定义

  • 需要单独包含涉及到的头文件,也就是说即便主函数所在的 C 文件中包含了头文件,在这里仍然是无效的,需要再次加入 #include<XXX.h>
  • 头文件中的函数不能直接调用已经定义的其他函数(必须在此头文件中定义)

函数的声明

声明部分包括:

  • 返回值类型
  • 函数名
  • 参数列表
  • 分号

声明的要求/注意:

  • 当定义部分在调用语句之前的时候,就无需声明;反之,如果定义语句在调用语句后,且没有加声明语句,则可能报错(实测不是每次都报错)。

函数的调用

调用的形式:

  • 函数语句调用,如:scanf("请输入:%f", &b);
  • 函数表达式调用,如:a = pow(b);
  • 函数参数调用,如:printf("2的平方等于:%f", sqrt(4));

调用的要求/注意

  • 主函数可以调用其他函数(也称“下层函数”),但其他函数不能调用主函数,下层函数可以相互调用
  • 定义在其他C文件中的函数不需要写 “#inclde"XXX.c” 的预处理语句
  • 定义在头文件中的函数必须写 “#inclde"XXX.h” 的预处理语句
Kiana   2020.2.8